﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.Xml.Serialization;

namespace Stockholm.SOA.Kaskelot.WCF.DataContracts.Analys
{
    [KnownType(typeof(FieldFilter))]
    [KnownType(typeof(FilterGroup))]
    [KnownType(typeof(IFilterPart))]
    [XmlInclude(typeof(FieldFilter))]
    [XmlInclude(typeof(FilterGroup))]
    [DataContract]
    public class Query
    {
        [DataMember]
        public int QueryID { get; set; }

        [DataMember]
        public string Name { get; set; }

        [DataMember]
        public List<Field> DisplayFields { get; set; }

        [DataMember]
        public List<Entity> Entities { get; set; }

        [DataMember]
        public List<IFilterPart> Filters { get; set; }

        [DataMember]
        public bool IsPersonal { get; set; }
    }
}
